home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Special 13 / AMIGAplus Sonderheft 13 (1998)(ICP)(DE)[!].iso / rexx / delitracker.arexx < prev    next >
Text File  |  1997-08-31  |  2KB  |  79 lines

  1. /* This script uses DeliTracker to play nethack background tunes */
  2. /* © 1997 Christian Stieber */
  3.  
  4. /* use something like 'run rx DeliTracker.arexx %m' for your STARTUP option */
  5.  
  6. Nodules.=''
  7.  
  8. /* Set the tunes for the dungeons. These are required for the script to work */
  9. CALL InitModule 'The Dungeons of Doom','','Misc:Modules/ProTracker/mod.Helmet_Shake'
  10. CALL InitModule 'The Gnomish Mines','','Misc:Modules/ProTracker/mod.Dong Fang Zi Zhu'
  11. CALL InitModule 'Fort Ludios','','Misc:Modules/NoiseTracker2/mod.western1'
  12. CALL InitModule 'Gehennom','','Misc:Modules/ProTracker/mod.shamotronic'
  13. CALL InitModule 'Vlad''s Tower','','Misc:Modules/ProTracker/mod.Ice Matrix'
  14. CALL InitModule 'The Quest','','Misc:Modules/ProTracker/mod.trancefinite'
  15. CALL InitModule 'The Elemental Planes','','Misc:Modules/ProTracker/mod.cyberdawn'
  16. CALL InitModule 'Game Over','','Work:Modules/ScreamTracker/s3m.dark times'
  17.  
  18. /* Some special tunes for special levels */
  19. CALL InitModule 'The Dungeons of Doom','medusa','Misc:Modules/mod.das_boot'
  20.  
  21. ADDLIB('rexxsupport.library',0,-30,0)
  22. IF SHOW('L','rexxsupport.library') THEN DO
  23.   PARSE ARG PortName
  24.   IF OPENPORT(PortName) THEN DO
  25.     IF ~SHOW('P','DELITRACKER') THEN DO
  26.       ADDRESS 'COMMAND'
  27.       OldDir=PRAGMA('D','Fun:Musik/DeliTracker_II')
  28.       'run >NIL: DeliTracker2'
  29.       PRAGMA('D',OldDir)
  30.       DROP OldDir
  31.       'WaitForPort DELITRACKER'
  32.     END
  33.     IF SHOW('P','DELITRACKER') THEN DO
  34.       ADDRESS 'DELITRACKER'
  35.       'HIDEGUI'
  36.       'CLEARLIST'
  37.       'SONGEND NO'
  38.       Dungeon=''
  39.       Module=''
  40.       Done=0
  41.       DO UNTIL Done
  42.     CALL WAITPKT(PortName)
  43.     Packet=GETPKT(PortName)
  44.     IF C2D(Packet)~=0 THEN DO
  45.       RC=0
  46.       Command=GETARG(Packet,0)
  47.       SELECT
  48.         WHEN Command='DUNGEON' THEN DO
  49.               Dungeon=GETARG(Packet,1)
  50.             END
  51.         WHEN Command='SPLEVEL' THEN DO
  52.           SPLevel=GETARG(Packet,1)
  53.           IF Modules.Dungeon.SPLevel='' THEN SPLevel=''
  54.           NewModule=Modules.Dungeon.SPLevel
  55.               IF NewModule~=Module THEN DO
  56.                 Module=NewModule
  57.                 IF Module=''
  58.                   THEN 'EJECT'
  59.               ELSE 'PLAYMOD' Module
  60.           END
  61.               DROP NewModule
  62.             END
  63.         WHEN Command='CLASS' THEN NOP
  64.         WHEN Command='SHUTDOWN' THEN Done=1
  65.         OTHERWISE RC=10
  66.       END
  67.       CALL REPLY Packet,RC
  68.     END
  69.       END
  70.       'QUIT'
  71.     END
  72.   END
  73. END
  74. EXIT 0
  75.  
  76. InitModule: PROCEDURE EXPOSE Modules.
  77.   PARSE ARG Dungeon,SPLevel,Module
  78.   Modules.Dungeon.SPLevel=Module
  79.